package com.navi.loaddata.core.gpEntity;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;

@Entity
@Table(name = "m_prod_d", schema = "dm", catalog = "qmsprd")
public class MProdD {
    private int prodKey;
    private String unqSeqId;
    private Timestamp etlTimestamp;
    private String etlEventNode;
    private String etlEventName;
    private String etlEvtSeqId;
    private String prodId;
    private String ecCode;
    private String prodCate;
    private String prodSize;
    private String prodType;
    private String prodDsc;
    private Integer shopKeyFk;
    private String shopId;
    private Integer layoutKeyFk;
    private String layoutId;
    private String routeId;
    private String routeVer;
    private Double prodThickness;
    private String validFlg;
    private String prodErpCode;
    private String evtCate;
    private String evtUser;
    private Timestamp evtTimestamp;
    private String evtNote;

    @Id
    @Column(name = "prod_key")
    public int getProdKey() {
        return prodKey;
    }

    public void setProdKey(int prodKey) {
        this.prodKey = prodKey;
    }

    @Basic
    @Column(name = "unq_seq_id")
    public String getUnqSeqId() {
        return unqSeqId;
    }

    public void setUnqSeqId(String unqSeqId) {
        this.unqSeqId = unqSeqId;
    }

    @Basic
    @Column(name = "etl_timestamp")
    public Timestamp getEtlTimestamp() {
        return etlTimestamp;
    }

    public void setEtlTimestamp(Timestamp etlTimestamp) {
        this.etlTimestamp = etlTimestamp;
    }

    @Basic
    @Column(name = "etl_event_node")
    public String getEtlEventNode() {
        return etlEventNode;
    }

    public void setEtlEventNode(String etlEventNode) {
        this.etlEventNode = etlEventNode;
    }

    @Basic
    @Column(name = "etl_event_name")
    public String getEtlEventName() {
        return etlEventName;
    }

    public void setEtlEventName(String etlEventName) {
        this.etlEventName = etlEventName;
    }

    @Basic
    @Column(name = "etl_evt_seq_id")
    public String getEtlEvtSeqId() {
        return etlEvtSeqId;
    }

    public void setEtlEvtSeqId(String etlEvtSeqId) {
        this.etlEvtSeqId = etlEvtSeqId;
    }

    @Basic
    @Column(name = "prod_id")
    public String getProdId() {
        return prodId;
    }

    public void setProdId(String prodId) {
        this.prodId = prodId;
    }

    @Basic
    @Column(name = "ec_code")
    public String getEcCode() {
        return ecCode;
    }

    public void setEcCode(String ecCode) {
        this.ecCode = ecCode;
    }

    @Basic
    @Column(name = "prod_cate")
    public String getProdCate() {
        return prodCate;
    }

    public void setProdCate(String prodCate) {
        this.prodCate = prodCate;
    }

    @Basic
    @Column(name = "prod_size")
    public String getProdSize() {
        return prodSize;
    }

    public void setProdSize(String prodSize) {
        this.prodSize = prodSize;
    }

    @Basic
    @Column(name = "prod_type")
    public String getProdType() {
        return prodType;
    }

    public void setProdType(String prodType) {
        this.prodType = prodType;
    }

    @Basic
    @Column(name = "prod_dsc")
    public String getProdDsc() {
        return prodDsc;
    }

    public void setProdDsc(String prodDsc) {
        this.prodDsc = prodDsc;
    }

    @Basic
    @Column(name = "shop_key_fk")
    public Integer getShopKeyFk() {
        return shopKeyFk;
    }

    public void setShopKeyFk(Integer shopKeyFk) {
        this.shopKeyFk = shopKeyFk;
    }

    @Basic
    @Column(name = "shop_id")
    public String getShopId() {
        return shopId;
    }

    public void setShopId(String shopId) {
        this.shopId = shopId;
    }

    @Basic
    @Column(name = "layout_key_fk")
    public Integer getLayoutKeyFk() {
        return layoutKeyFk;
    }

    public void setLayoutKeyFk(Integer layoutKeyFk) {
        this.layoutKeyFk = layoutKeyFk;
    }

    @Basic
    @Column(name = "layout_id")
    public String getLayoutId() {
        return layoutId;
    }

    public void setLayoutId(String layoutId) {
        this.layoutId = layoutId;
    }

    @Basic
    @Column(name = "route_id")
    public String getRouteId() {
        return routeId;
    }

    public void setRouteId(String routeId) {
        this.routeId = routeId;
    }

    @Basic
    @Column(name = "route_ver")
    public String getRouteVer() {
        return routeVer;
    }

    public void setRouteVer(String routeVer) {
        this.routeVer = routeVer;
    }

    @Basic
    @Column(name = "prod_thickness")
    public Double getProdThickness() {
        return prodThickness;
    }

    public void setProdThickness(Double prodThickness) {
        this.prodThickness = prodThickness;
    }

    @Basic
    @Column(name = "valid_flg")
    public String getValidFlg() {
        return validFlg;
    }

    public void setValidFlg(String validFlg) {
        this.validFlg = validFlg;
    }

    @Basic
    @Column(name = "prod_erp_code")
    public String getProdErpCode() {
        return prodErpCode;
    }

    public void setProdErpCode(String prodErpCode) {
        this.prodErpCode = prodErpCode;
    }

    @Basic
    @Column(name = "evt_cate")
    public String getEvtCate() {
        return evtCate;
    }

    public void setEvtCate(String evtCate) {
        this.evtCate = evtCate;
    }

    @Basic
    @Column(name = "evt_user")
    public String getEvtUser() {
        return evtUser;
    }

    public void setEvtUser(String evtUser) {
        this.evtUser = evtUser;
    }

    @Basic
    @Column(name = "evt_timestamp")
    public Timestamp getEvtTimestamp() {
        return evtTimestamp;
    }

    public void setEvtTimestamp(Timestamp evtTimestamp) {
        this.evtTimestamp = evtTimestamp;
    }

    @Basic
    @Column(name = "evt_note")
    public String getEvtNote() {
        return evtNote;
    }

    public void setEvtNote(String evtNote) {
        this.evtNote = evtNote;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MProdD mProdD = (MProdD) o;
        return prodKey == mProdD.prodKey &&
                Objects.equals(unqSeqId, mProdD.unqSeqId) &&
                Objects.equals(etlTimestamp, mProdD.etlTimestamp) &&
                Objects.equals(etlEventNode, mProdD.etlEventNode) &&
                Objects.equals(etlEventName, mProdD.etlEventName) &&
                Objects.equals(etlEvtSeqId, mProdD.etlEvtSeqId) &&
                Objects.equals(prodId, mProdD.prodId) &&
                Objects.equals(ecCode, mProdD.ecCode) &&
                Objects.equals(prodCate, mProdD.prodCate) &&
                Objects.equals(prodSize, mProdD.prodSize) &&
                Objects.equals(prodType, mProdD.prodType) &&
                Objects.equals(prodDsc, mProdD.prodDsc) &&
                Objects.equals(shopKeyFk, mProdD.shopKeyFk) &&
                Objects.equals(shopId, mProdD.shopId) &&
                Objects.equals(layoutKeyFk, mProdD.layoutKeyFk) &&
                Objects.equals(layoutId, mProdD.layoutId) &&
                Objects.equals(routeId, mProdD.routeId) &&
                Objects.equals(routeVer, mProdD.routeVer) &&
                Objects.equals(prodThickness, mProdD.prodThickness) &&
                Objects.equals(validFlg, mProdD.validFlg) &&
                Objects.equals(prodErpCode, mProdD.prodErpCode) &&
                Objects.equals(evtCate, mProdD.evtCate) &&
                Objects.equals(evtUser, mProdD.evtUser) &&
                Objects.equals(evtTimestamp, mProdD.evtTimestamp) &&
                Objects.equals(evtNote, mProdD.evtNote);
    }

    @Override
    public int hashCode() {

        return Objects.hash(prodKey, unqSeqId, etlTimestamp, etlEventNode, etlEventName, etlEvtSeqId, prodId, ecCode, prodCate, prodSize, prodType, prodDsc, shopKeyFk, shopId, layoutKeyFk, layoutId, routeId, routeVer, prodThickness, validFlg, prodErpCode, evtCate, evtUser, evtTimestamp, evtNote);
    }
}
